package com.my.iot.protocol.modbus.tcp.enums;


import lombok.Getter;

/**
 * @author wangjixin
 */

@Getter
public enum ModbusDataType {
    //线圈寄存器 可续写的单个状态（布尔）
    COIL_STATUS(01),

    //离散输入寄存器 只读的单个位状态（布尔）
    DISCRETE_INPUT(02),

    //保持寄存器 可续写的单个16位值
    HOLDING_REGISTER(03),

    //输入寄存器 只读的16位值
    INPUT_REGISTER(04);


    private final int code;

    ModbusDataType(int code) {
        this.code = code;
    }

    public static ModbusDataType fromCode(int code) {
        for (ModbusDataType type : ModbusDataType.values()) {
            if (type.getCode() == code) {
                return type;
            }
        }
        throw new IllegalArgumentException("Unknown Modbus data type code: " + code);
    }
}

